package br.com.hs.nfe.common.enumeration;

/**
 * Enumeração dos motivos da desoneração do ICMS.
 * @author Ranlive Hrysyk
 */
public enum MotDesICMSEnum {

    /**
     * 1 - Táxi.
     */
    TAXI("1", "Táxi"),
    /**
     * 2 - Deficiente Físico.
     */
    DEFICIENTE_FISICO("2", "Deficiente Físico"),
    /**
     * 3 - Produtor Agropecuário.
     */
    PRODUTOR_AGROPECUARIO("3", "Produtor Agropecuário"),
    /**
     * 4 - Frotista/Locadora.
     */
    FROTISTA_LOCADORA("4", "Frotista/Locadora"),
    /**
     * 5 - Diplomático/Consular.
     */
    DIPLOMATICO_CONSULAR("5", "Diplomático/Consular"),
    /**
     * 6 - Utilitários e Motocicletas da Amazônia Ocidental e Áreas de Livre Comércio (Resolução 714/88 e 790/94 - 
     * CONTRAN e suas alterações).
     */
    UTILIT_MOTOC_AMAZONIA_OCID_ALC("6", "Utilit. e Motoc. da Amazônia Ocid. e Áreas de Livre Comércio"),
    /**
     * 7 - SUFRAMA.
     */
    SUFRAMA("7", "SUFRAMA"),
    /**
     * 9 - Outros.
     */
    OUTROS("9", "Outros");
    private String codigo;
    private String descricao;

    private MotDesICMSEnum(String codigo, String descricao) {
        this.codigo = codigo;
        this.descricao = descricao;
    }

    /**
     * Descrição.
     */
    public String getDescricao() {
        return this.descricao;
    }

    /**
     * Código.
     */
    public String getCodigo() {
        return this.codigo;
    }

    @Override
    public String toString() {
        return getDescricao();
    }

    /**
     * Obtém enum pelo código.
     */
    public static MotDesICMSEnum getEnumByCodigo(String codigo) {
        for (MotDesICMSEnum e : values()) {
            if (e.getCodigo().equals(codigo)) {
                return e;
            }
        }
        return null;
    }
}
